using System.Windows.Media;

namespace YouVisio.Silverlight.TextDiff
{
    public interface ISettingsSource
    {
        bool IsVisibleLinesPreviewBar { get; set; }
        bool IsVisibleLeftLinesNumbersBar { get; set; }
        bool IsVisibleRightLinesNumbersBar { get; set; }
        bool IsVisibleButtonsBar { get; set; }
        bool IsEnableFileSelect { get; set; }
        bool IsEnableFileDragAndDrop { get; set; }
        bool IsEnableTextValidation { get; set; }
        double ElementSpacing { get; set; }
        Brush BlockDeletedBrush { get; set; }
        Brush BlockInsertedBrush { get; set; }
        Brush BlockChangedBrush { get; set; }
        Brush PreviewWindowFillBrush { get; set; }
        Brush PreviewWindowStrokeBrush { get; set; }
        double PreviewWindowSideMargin { get; set; }
        int MaxAllowedStringSize { get; set; }
        int MaxAllowedFileSizeInBytes { get; set; }
        string AllowedFileTypes { get; set; }
        bool IsAllowedFileName(string fileName);


        // used for file buttons
        string Label_File1 { get; set; }
        string Label_File2 { get; set; }
        string Label_TextOrSourceFiles { get; set; }
        // used for error messages
        string Label_Error_FilesWithThatExtensionNotAllowed { get; set; }
        string Label_Error_FilesWithThatSizeNotAllowed { get; set; }
        string Label_Error_StringsWithThatSizeNotAllowed { get; set; }
        string Label_Error_PleaseEnterText { get; set; }
        // used when mouse over the elements on the left side lines preview
        string Label_Deleted { get; set; }
        string Label_Inserted { get; set; }
        string Label_Changed { get; set; }
        string Label_VisibleWindow { get; set; }
        // used by the trigger button
        string Label_ViewDifferences { get; set; }
        // used by the trigger button
        string Label_EditText { get; set; }
        string Label_TextIsIdentical { get; set; }
    }
}